package main

var _ = `
283. 移动零
给定一个数组 nums，编写一个函数将所有 0 移动到数组的末尾，同时保持非零元素的相对顺序。

请注意 ，必须在不复制数组的情况下原地对数组进行操作。

 

示例 1:

输入: nums = [0,1,0,3,12]
输出: [1,3,12,0,0]
示例 2:

输入: nums = [0]
输出: [0]
 

提示:

1 <= nums.length <= 104
-231 <= nums[i] <= 231 - 1
`

func moveZeroes(nums []int) {
	// 遍历,为0的时候,就把后面的不为0的值填充过来, 最后再把所有剩余值补0

	index := 0
	for i := 0; i < len(nums); i++ {
		if nums[i] == 0 {
			continue
		}
		// 从前到后,覆盖存储所有不为0的值
		nums[index] = nums[i]
		index++
	}

	// 剩余值全补0
	for i := index; i < len(nums); i++ {
		nums[i] = 0
	}
}

func main() {

}
